package com.Offer;

/*
    面试题63：股票的最大利润
    假设把某股票的价格按照时间先后顺序存储在数组中，请问买卖该股票一次可能获得的最大利润是多少
    例如某些时间点的股票价格为{9,11,8,5,7,12,16,14}。如果在价格为5的时候买入，在16的时候卖出
    则收货最大利润为11
 */
public class demo63 {
    public static void main(String[] args) {
        int[] input = {9,11,8,5,7,12,16,14};
        System.out.println(MaxDiff(input));
    }

    public static int MaxDiff(int[] numbers){
        if (numbers == null || numbers.length < 2)
            return 0;
        int min = numbers[0];
        int maxDiff = numbers[1]-min;
        for(int i = 2;i < numbers.length;i++){
            if (numbers[i-1] < min)
                min = numbers[i-1];
            int currentDiff = numbers[i] - min;
            if (currentDiff > maxDiff){
                maxDiff = currentDiff;
            }
        }
        return maxDiff;
    }
}
